package main

var cache = map[int]int{
	0: 1,
	1: 2,
}

func twoPow(n int) int {
	if ret, ok := cache[n]; ok {
		return ret
	}
	v := twoPow(n / 2)
	if n%2 == 0 {
		return v * v
	}
	return v * v * 2
}

func isPowerOfTwo(n int) bool {
	i := 0
	for {
		pow := twoPow(i)
		if pow == n {
			return true
		}
		if pow > n {
			return false
		}
		i++
	}
}

func main() {
	println(isPowerOfTwo(1024))
}
